Пример:Web-сервисы в Microsoft Visual Studio.NET
Для создания Web-сервиса средствами Microsoft Visual Studio.NET необходимо выполнить следующие действия:
Рис.7 панель New Projects выбрать Web Service
В результате мы получим такой скелет сервиса (чтобы увидеть код, следует нажать правую кнопку мыши):
Imports System.ComponentModel Imports System.Configuration Imports System.Web.Services Imports System.Diagnostics Imports System.Data Public Class ExchangeRateService Inherits System.Web.Services.WebService #Region " Web Services Designer Generated Code " 'Required by the WebServices Designer Private components As System.ComponentModel.Container Private Sub InitializeComponent() 'CODEGEN: This procedure is required by the WebServices Designer 'Do not modify it using the code editor. components = New System.ComponentModel.Container End Sub Overrides Sub Dispose() 'CODEGEN: This procedure is required by the WebServices Designer 'Do not modify it using the code editor. End Sub #End Region Public Sub New() MyBase.New 'CODEGEN: This procedure is required by the WebServices Designer 'Do not modify it using the code editor. InitializeComponent 'Add your own initialization code after the InitializeComponent ' call End Sub End Class
Microsoft Visual Studio.NET также создаст SDL-файл, который будет содержать описание нашего Web-сервиса, и DISCO-файл, используемый для регистрации и обнаружения сервиса.
В качестве примера создадим Web-сервис, выполняющий конвертацию валюты. Реализация метода Usd2Rub — преобразование суммы в долларах в сумму в рублях — показана ниже:
Public Class ExchangeRateService Inherits System.Web.Services.WebService Public Function <WebMethod()> Usd2Rub _ (ByVal Value As Double) As String Usd2Rub = CStr(Value * 30) End Function End Class
После создания Web-сервиса вызовем команду Build (выбрав опцию Release) для генерации необходимого кода и внедрения сервиса на Web-сервер. Теперь можно испытать наш сервис в действии. Для этого необходимо запустить Web-браузер и указать адрес, который был указан в панели New Project — Project will be created…
В нашем примере это будет http://terra/mywebservice/ (см. рис. 7). После этого указываем имя класса (в нашем примере — это ExchangeRateService) и расширение ASMX (Assembly). Полный адрес для запуска нашего сервиса будет выглядеть так:
http://terra/mywebservice/ExchangeRateService.asmx
В результате мы получаем тестовую страницу, созданную Visual Studio.NET (рис. 8).
Рис.8 тестовая страница, созданная Visual Studio.NET
Данная страница содержит описание Web-сервиса, а также список реализованных в нем методов. Например, описание метода Usd2Rub показано на рис. 9.
Рис.9 описание метода Usd2Rub
Введя в строке ввода какую-либо сумму и нажав кнопку Invoke, мы вызовем сервис нашего Web-метода с указанным параметром и получим следующий результирующий XML-документ:
<?xml version=”1.0" ?> <string xmlns=”http://tempuri.org/”>1048.5</string>
Завершая краткое описание создания Web-сервисов, отметим, что тестовая страница создается на основе информации, хранимой в SDL-файле, который можно просмотреть, указав параметр ?SDL в адресной строке браузера:
http://www.terra/mywebservice/ExchangeRateService.asmx?SDL
Для запуска Web-сервиса из приложения следует использовать следующий URL:
http://www.terra/mywebservice/exchangerateservice.asmx/Usd2Rub?Value=34.95
Обратите внимание также на то, что имя метода указывается после символа «/», а параметр — как обычный параметр URL-строки.